/*
 * InfoPanelCreatorVisitor.hpp
 *
 *  Created on: 10-01-2011
 *      Author: Przemek
 */

#pragma once

#include "world/ElementsVisitor.hpp"
#include "customUI/SingleElementInfoPanel.hpp"

/*
 * Creates info panel for element. Info panel is displayed in element info panel in tabbed pane
 * when a single element is selected.
 */
class InfoPanelCreatorVisitor: public ElementsVisitor
{
	private:
		float parentComponentWidth;
		SingleElementInfoPanel* infoPanel;

	public:
		InfoPanelCreatorVisitor(float parentComponentWidth);
		void visit(Barrier& barrier);
		void visit(Individual& individual);
		void visit(MeatSupply& meatSupply);
		void visit(VegetableSupply& vegetableSupply);
		void visit(WaterSupply& waterSupply);

		SingleElementInfoPanel* getPanel();
};
